home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -serious- / programming / c / icu-1.3.1 / icuapps / locexp / tools / escapeforbundle.c < prev    next >
C/C++ Source or Header  |  2000-02-23  |  824b  |  44 lines

  1. /* (c) 1999 IBM, Inc.
  2.    This little program takes utf16_be input and outputs 
  3.    escaped text suitable for inclusion in a resource bundle.
  4.  
  5.    Use it like this:
  6.  
  7.     uconv -f <srccodepage> -t utf16_be | escapeForBundle >> myResource.txt
  8. */
  9.  
  10. #include <stdio.h>
  11. #include <ctype.h>
  12.  
  13. typedef unsigned short UChar;
  14.  
  15.  
  16. int main()
  17. {
  18.   UChar myChar;
  19.   char  cHi, cLo;
  20.  
  21.   while(!feof(stdin))
  22.     {
  23.       cHi = getchar();
  24.       
  25.       if(feof(stdin)) return; /* half-char */
  26.  
  27.       cLo = getchar();
  28.  
  29.       myChar = (cHi<<8) | cLo;
  30.  
  31.       if( (cHi == 0) &&  /* high byte UNset */
  32.       isprint(cLo) &&              /* considered printable */
  33.       (cLo != '"') &&              /* Not our two special chars: " and */
  34.       (cLo != '\\') )              /*  \ */
  35.     {
  36.       putchar(cLo);
  37.     }
  38.       else
  39.     {
  40.       printf("\\u%04X", (int) myChar);
  41.     }
  42.     }
  43. }
  44.